#include <stdio.h>
#include "main.h"

// 初始化队列。初始化成功返回0；初始化失败返回1。
int init_queue(Queue ** q) {
	*q = (Queue *) malloc(sizeof(Queue));
	if ((*q) != NULL)
		if ((*q) != NULL) {
			(*q)->size = 0;
			return 0;
		} else {
			return 1;
		}
}


int enqueue (Queue * q, int value){
	if(size(q)<QUEUE_MAX_SIZE) {
		q->elements[q->size] = value;
		q->size++;
		return 0;
	} else return 1;
}

int dequeue(Queue * q, int *value){
	if(q->size==0)return 1;
	*value=q->elements[0];
	int n = 0;
	while (n<q->size){
		q->elements[n]=q->elements[n+1];
		n=n+1;
	}
	q->size--;
	return 0;
}
int first(Queue * q, int * value){
	if(q->size==0)return 1;
	*value =q->elements[0];
	if(*value=NULL)return 1;
	else return 0;
}

int is_empty(Queue * q){
	if(q->size==0)return 0;
	else return 1;
}

int size(Queue * q){
	return q->size;
}

int main(){
	Queue *q;
	int value;
	init_queue(&q);
	for(int i=0;i<9;i++){
		value=i;
		enqueue(q,value);
		printf("%d\n",value);
	}
	printf("%d\n",size(q));
	is_empty(q);
	dequeue(q,&value);
	printf("%d\n",size(q));
};
